Mapping interface for mobile robots

ABSTRACT

A method of operating an autonomous cleaning robot includes presenting, on a display of a handheld computing device, a graphical representation of a map including a plurality of selectable rooms, presenting, on the display, at least one selectable graphical divider representing boundaries of at least one of the plurality of selectable rooms, the at least one selectable graphical divider being adjustable to change at least one of the boundaries of the plurality of selectable rooms, receiving input, at the handheld computing device, representing a selection of an individual selectable graphical divider, receiving input, at the handheld computing device, representing at least one adjustment to the individual selectable graphical divider, the at least one adjustment including at least one of moving, rotating, or deleting the individual selectable graphical divider, and presenting, on the display, a graphical representation of a map wherein the individual selectable graphical divider is adjusted.

TECHNICAL FIELD

This specification relates generally to control systems for autonomouscleaning robots. In one exemplary system, selectable and editable mapsare used for controlling an autonomous cleaning robot.

BACKGROUND

Cleaning robots include mobile robots that autonomously perform cleaningtasks within an environment, e.g., a home. Many kinds of cleaning robotsare autonomous to some degree and in different ways. The cleaning robotsinclude a controller that is configured to autonomously navigate thecleaning robot about the environment such that the cleaning robot caningest debris as it moves.

SUMMARY

A mobile application can be used to present a map displaying areastraversed by an autonomous cleaning robot during cleaning missions andmay allow editing room boundaries on the map. A master map is generatedfrom data collected by the autonomous cleaning robot traversing an area(e.g., a series of rooms). The master map is editable and allows a userto customize (e.g., label, resize, reshape, etc.) particular roomsdisplayed on the master map. Selectable graphical dividers arepositionable and allow the user to define boundaries between rooms onthe master map (e.g., to restrict future operations of the autonomouscleaning robot). Labels can be applied to rooms on the master map andcan be compiled into a list from which a user can individually selectrooms, floors, etc. for inclusion in a cleaning mission for theautonomous cleaning robot.

Described herein are examples of methods and devices for training andusing mobile robots configured to traverse floor surfaces and performvarious operations including, but not limited to, cleaning, Advantagesof the foregoing may include, but are not limited to, those describedbelow and herein elsewhere.

The generation of a custom map allows a user to perform on-demandcleaning of particular areas (e.g., rooms, floors) of the user's home.For example, the user may direct the autonomous cleaning robot to cleanthe entire downstairs or just the master bedroom. On-demand cleaning isespecially useful, for example, if the user is having guests over tohis/her home and needs the kitchen, living room, and bathroom cleanedbefore guests arrive, as the user may select just those rooms forcleaning,

In one aspect, the present specification provides a method of operatingan autonomous cleaning robot. The method includes presenting, on adisplay of a handheld computing device, a graphical representation of amap including a plurality of selectable rooms. The method also includespresenting, on the display, at least one selectable graphical dividerrepresenting boundaries of at least one of the plurality of selectablerooms, the at least one selectable graphical divider being adjustable tochange at least one of the boundaries of the plurality of selectablerooms. The method also includes receiving input, at the handheldcomputing device, representing a selection of an individual selectablegraphical divider. The method also includes receiving input, at thehandheld computing device, representing at least one adjustment to theindividual selectable graphical divider, the at least one adjustmentincluding at least one of moving, rotating, or deleting the individualselectable graphical divider and presenting, on the display, a graphicalrepresentation of a map wherein the individual selectable graphicaldivider is adjusted.

In some implementations, the method also includes receiving input, atthe handheld computing device, to initiate the autonomous cleaning robotto perform a cleaning mission, wherein the autonomous cleaning robot isconfigured to clean based on the graphical representation of the mapwherein the individual selectable graphical divider is adjusted.

In some implementations, the method also includes presenting, on thedisplay, a visual alert upon receiving input to position a center pointof the individual selectable graphical divider outside of a room. Insome instances, presenting the visual alert includes changing a color ofthe individual selectable graphical divider or a shape of the centerpoint.

In some implementations, the method also includes presenting, on thedisplay, in at least one of the plurality of selectable rooms, arepresentation of an open area and a representation of an areacontaining one or more moveable objects.

In some implementations, a center point of the individual selectablegraphical divider is positionable in a room, in an open area, or in anarea containing at least one moveable object.

In some implementations, the method also includes presenting, on thedisplay, a representation of an immovable object in a room, wherein theindividual selectable graphical divider accounts for a position of theimmovable object to divide the room. In some instances, the method alsoincludes presenting a visual alert upon a center point of the individualselectable graphical divider being placed on the representation of theimmovable obstacle.

In some implementations, the method also includes presenting, on thedisplay, a list of selectable room labels for naming a selected room.

In some implementations, the method also includes presenting, on thedisplay, an interface for entering a custom name for naming a selectedroom.

In some implementations, the individual selectable graphical divider isconfigured to snap to an angular increment based on rotating theindividual selectable graphical divider. In some instances, the angularincrement is 45 degrees.

In some implementations, the method also includes receiving input, atthe handheld computing device, representing an addition of a newselectable graphical divider and presenting, on the graphicalrepresentation of the map on the display, the new selectable graphicaldivider.

In some implementations, the method also includes presenting, on thedisplay, a menu including options to rename the map, edit the map, orrename selectable rooms on the map.

In another aspect, the present specification provides a handheldcomputing device. The handheld computing device includes at least oneinput configured to receive information from a user, a display, and aprocessor. The processor is configured to present, on the display, agraphical representation of a map including a plurality of selectablerooms. The processor is also configured to present, on the display, atleast one selectable graphical divider representing boundaries of theselectable rooms, the at least one selectable graphical divider beingindividually adjustable to change at least one of the boundaries of theselectable rooms. The processor is also configured to present, on thedisplay, a graphical representation of a map wherein an individualselectable graphical divider is adjusted. The received informationincludes a selection of the individual selectable graphical divider, andthe received information includes at least one adjustment to theindividual selectable graphical divider, the at least one adjustmentincluding at least one of moving, rotating, and deleting the individualselectable graphical divider.

In some implementations, the received information includes informationto initiate the autonomous cleaning robot to perform a cleaning mission,and the autonomous cleaning robot is configured to clean based on thegraphical representation of the map wherein the individual selectablegraphical divider is adjusted.

In some implementations, the processor is further configured to present,on the display, a visual alert upon receiving input to position a centerpoint of the individual selectable graphical divider outside of a room.In some instances, presenting the visual alert includes changing a colorof the individual selectable graphical divider and a shape of the centerpoint.

In some implementations, the processor is further configured to present,on the display, in at least one of the plurality of selectable rooms, arepresentation of an open area and a representation of an areacontaining at least one moveable object.

In some implementations, a center point of the individual selectablegraphical divider is positionable in a room, in an open area, or in anarea containing at least one moveable object.

In some implementations, the processor is further configured to present,on the display, a representation of an immovable object in a room,wherein the individual selectable graphical divider accounts for aposition of the immovable object to divide the room. In some instances,the processor is further configured to present, on the display, a visualalert upon the center point of the individual selectable graphicaldivider being placed on the representation of the immovable obstacle.

In some implementations, the processor is further configured to present,on the display, a list of selectable room labels for naming a selectedroom.

In some implementations, the processor is further configured to present,on the display, an interface for entering a custom name for naming aselected room.

In some implementations, the selectable graphical divider is configuredto snap to an angular increment based on rotating the individualselectable graphical divider. In some instances, the angular incrementis 45 degrees.

In some implementations, the input is configured to receive informationrepresenting an addition of a new selectable graphical divider, and theprocessor is configured to present, on the graphical representation ofthe map on the display, the new selectable graphical divider.

In some implementations, the processor is further configured to present,on the display, a menu includes options to rename the map, edit the map,or rename selectable rooms on the map.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will be apparent from the description and drawings, and fromthe claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates an environment including an autonomous cleaning robotand a handheld computing device.

FIG. 2 is an interface showing a notification that a map is ready forediting.

FIG. 3 is an interface that describes portions of a generated map.

FIG. 4. is an interface showing a map configured to be customized.

FIG. 5 and FIG. 6 are interfaces for naming the map shown in FIG. 4.

FIG. 7 is an interface showing instructions for editing the map.

FIG. 8 is an interface showing a map including selectable graphicaldividers.

FIGS. 9-14 are interfaces showing a map during a process of positioningselectable graphical dividers.

FIGS. 15-22 are interfaces presented during a process of labelling roomson a map.

FIG. 23 is an interface showing map editing options.

FIG. 24 is an interface showing a map on where the rooms have beenlabelled.

FIG. 25 is an interface showing a map completion confirmation and thatcleaning operations may be initiated.

FIG. 26 is a flowchart representing a process for operating anautonomous cleaning robot.

DETAILED DESCRIPTION

An application can be used to control operation of an autonomouscleaning robot for cleaning missions. A master map is generated based onthe autonomous cleaning robot traversing an area. For example, a mastermap can be considered a digital representation of the traversableflooring area of an environment (e.g., a residence) that has beengenerated from data collected by the autonomous cleaning robot over asingle cleaning session, a series of cleaning sessions, a trainingmission, a series of training missions, etc. During a cleaning mission,the autonomous cleaning robot performs cleaning tasks as the autonomouscleaning robot traverses the environment. During a training mission, theautonomous cleaning robot does not perform cleaning tasks (or performslimited cleaning tasks) as the autonomous cleaning robot traverses theenvironment. The master map is editable and allows a user to customize(e.g., label, resize, reshape, etc.) particular rooms displayed on themaster map. Selectable graphical dividers are positionable and allow auser to define boundaries between rooms on the master map. Labels can beapplied to rooms on the master map and can be compiled into a list fromwhich a user can select rooms, floors, etc. floors for inclusion in acleaning mission for the autonomous cleaning robot. In some examples,through the mobile application, the user can manage operations for theautonomous cleaning robot (e.g., select cleaning parameters, schedulethe autonomous cleaning robot, view a cleaning status of the autonomouscleaning robot, etc.).

Referring to FIG. 1, an autonomous cleaning robot 102 is located on afloor surface 104 within a room 106. The autonomous cleaning robot 102is configured to communicate with a mobile device 120. A mobile device120 as described herein may include a smart phone, a cellular phone,personal digital assistant, laptop computer, tablet, smart watch, orother portable (e.g., handheld) computing device capable of transmittingand receiving signals related to a robot cleaning mission. The mobiledevice 120 is configured to present, on a display 122, informationrelating to a robot training run, cleaning mission, etc. and receive aninput from a user. The mobile device 120 includes a processor 114configured to initiate data transmission and reception (via theinternet, etc.) with the autonomous cleaning robot 102 and run a mobileapplication 124 configured to present graphical maps, on the display 122of the mobile device 120, generated from data collected by theautonomous cleaning robot 102. The maps presented on the display 122 ofthe mobile device 120 also include an editable master map.

Overall, FIGS. 2-25 illustrate various types of information that can bepresented, edited, etc. on the display 122 of the mobile device 120. Bypresenting this information and allowing the user to edit theinformation, a custom map can be generated. Based on the custom map, theuser may select rooms for inclusion in a cleaning mission.

FIG. 2 is an interface 200 presented on the display 122 of the mobiledevice 120. The interface 200 includes a push notification 202indicating that a master map is ready to be edited by the user.Selecting the push notification 202 opens the mobile application 124configured to allow the user to edit the master map. Editing the mastermap allows the user to create a custom map configured to allow the userto set up room-by-room cleaning or other types of cleaning-relatedfunctions.

Referring to FIG. 3, an interface 300, presented on the display 122 ofthe mobile device 120, shows a text instruction 302 to aid a user inunderstanding the master map that will be presented for editing in themobile application 124 (e.g., displayed symbol meaning, color schememeaning, etc.). The interface 300 also includes a schematic 304 of asample master map. The schematic 304 includes information informing theuser that the master map will contain markings representing varioustypes of information associated with the map. For example, graphicalelements may represent locations of moveable objects (“clutteredareas”). A selectable button 306 is presented to allow the user to closethe interface 300 and move on to presenting the next interface.

Referring to FIG. 4, an interface 400, presented on the display 122 ofthe mobile device 120, presents a master map 402 that is editable by theuser. The master map 402 includes a room 404 within which a dockingstation is located (shown by icon 414) for charging the autonomouscleaning robot 102. The room 404 may also include representations ofopen areas 410, as shown by the dark grey shading, and areas thatinclude moveable objects 412, as shown by the light grey shading, etc.Areas including moveable objects 412 may be, for example, areas whereobjects, due to their size, shape, function, etc., may be frequentlymoved. For example, an area where a table and chairs are positioned maybe represented as an area including moveable objects 412 as the tableand chairs may shift positions (due to their use) between missions wherethe table and chairs were detected by the autonomous cleaning robot 102.Open areas 410 are areas where the autonomous cleaning robot has notdetected obstacles on a consistent basis as the autonomous cleaningrobot traversed the room 404. To begin customizing the map 402, the userselects customize button 406. If the user desires further instructionsfor customizing the map 402, the user can press a help button 408.

When the user selects the customize button 406, the mobile device 120presents interface 500, as shown in FIG. 5, to begin customization. Theuser can name the master map 402 by entering a custom name in the customname field 506 or selecting from a list 502 of preset names. The presetname list 502 includes common names for rooms or floor levels of homes(e.g., “Downstairs” label 504). As shown in FIG.6, selecting a“Downstairs” label 604, changes the color of the label 604 to indicatethat the label 604 has been selected. After a name has been selected orentered, the user selects a continue button 606.

Referring to FIG. 7, after the user has named the map 402 (shown in FIG.4), the mobile device 120 presents an interface 700, on the display 122,providing text instructions 702 and an animation 704 for instructing theuser how to divide the map 402 into rooms. The text instructions 702 andthe animation 704 inform the user that the mobile application 124, priorto allowing the user to customize the map 402, divides the map 402 intoa set of rooms. The map 402 is divided into a set of rooms based oninformation obtained from the autonomous cleaning robot 102 (e.g., basedon a general shape and size, the autonomous cleaning robot 102 and/orthe mobile application 124 may define one or more rooms). In someinstances, sensor data (e.g., accelerometer data, bump sensor data,cliff sensor data, etc.) from the autonomous cleaning robot 102 may beused to divide the map 402 into a set of rooms. After reviewing theinstructions on the interface 700, the user selects a continue button706 to begin customizing the map 402.

Referring to FIG. 8, the mobile device presents an interface 800 thatallows the user to customize a master map 802 (a new representation ofthe map 402 shown in FIG. 4) on a room by room basis. The master map 802includes rooms 804, 806, 808, 810 that are separated from one another byselectable graphical dividers 812, 814, 816, 818. The selectablegraphical dividers 812, 814, 816, 818 are positioned on the master map802 at positions determined based on data gathered by the autonomouscleaning robot. The interface 800 also presents an add divider button820 that allows a user to create and add a new selectable graphicaldivider to the map 802. When a user selects this button, an interface900 is presented for controlling the placement, orientation, etc. of thenew selectable graphical divider.

Referring to FIG. 9, the interface 900 presents a map 902 (another newrepresentation of the map 402 shown in FIG. 4) that includes a newselectable graphical divider 906 (created by selecting the add dividerbutton 820 shown in FIG. 8). The selectable graphical divider 906includes a center point 908. The center point 908 is positioned in aroom 904 and indicates to the user, along with instruction text 916,that the selectable graphical divider 906 can be moved, rotated, etc.The center point 908 of the selectable graphical divider 906 is locatedat a midpoint of a portion of the selectable graphical divider 906located within the room containing the center point 908. The portions ofthe selectable graphical divider 906 that extend beyond the roomcontaining the center point 908 may be represented differently (e.g.,fade in color, change in color, change in transparency, etc.).

When the center point 908 is positioned in a room 904 on the map 902,the selectable graphical divider is shown to divide a room 904. When auser is satisfied that the selectable graphical divider 906 ispositioned in a desired position on the map 902, the user presses abutton 914 labeled “place”. To delete the selectable graphical divider906, the user presses a delete button 912. In some implementations, theuser may drag the center point 908 of the selectable graphical divider906 to the delete button 912. To cancel a previously executed operation,the user presses cancel button 918. The selectable graphical divider 906can be snapped to an angular increment, for example a closest angularincrement in increments of 45 degrees, by pressing the snap button 910.An example of snapping is shown in FIG. 11.

Referring to FIG. 10, an interface 1000 shows an instance where a centerpoint 1008 of a selectable graphical divider 1006 is positioned outsideof rooms 1004, 1010, 1012, 1014, 1016, 1018, on a map 1002. Generally,for the mobile application 124 to understand which room the selectablegraphical divider 906 is meant to divide, the center point 908 must belocated within a room 1004, 1010, 1012, 1014, 1016, 1018 on the map1002. When positioned outside of all rooms 1004, 1010, 1012, 1014, 1016,1018, on the map 1002, the center point 1008 changes shape (e.g., from acircle to an “X” shape, etc.) to raise a visual alert to the user. Thevisual alert indicates that the selectable graphical divider 1006 hasbeen positioned outside of the rooms 1004, 1010, 1012, 1014, 1016, 1018and that corrective action is required. In some instances, a placebutton 1020 may be unselectable (e.g., greyed out, etc.) to indicatethat the selectable graphical divider 1006 is improperly positioned. Insome instances, the interface 1000 may not allow the selectablegraphical divider 1006 to be placed in an improper position (e.g.,outside of the rooms 1004, 1010, 1012, 1014, 1016, 1018 on the map 1002)and may snap the center point 1008 to a closest position within a roomon the map 1002.

An immovable object 1022 is positioned on the map 1002 in the kitchen,room 1012. Immovable objects may be, for example, kitchen islands,permanent pieces of furniture, etc. that are positioned in a room. Whenthe user attempts to place the center point 1008 of the selectablegraphical divider 1006 on the immovable object 1022, the center point1008 will change to provide a visual alert to the user that theselectable graphical divider is improperly placed. In someimplementations, the mobile application 124 treats an immovable objectas creating a boundary of a room, rather than recognizing the immovableobject as being within a room. In such an implementation, outer edges ofimmovable object 1022 would be defined as boundaries of the kitchen 1012such that the kitchen included a void. In some implementations, themobile application 124 may account for a position of an immovable object1022 when the immovable object 1022 is intersected with the selectablegraphical divider 1006. When the center point 1008 is positioned in thekitchen 1012 such that the selectable graphical divider 1006 extendsacross the immovable object 1022, portions of the selectable graphicaldivider 1006 that cross the immovable object 1022 may be showndifferently, or may be absent.

FIG. 11 is an interface 1100 including a selectable graphical divider1106 that is rotated about a center point 1108 placed in a room 1104 ona map 1102. The room includes an area including moveable objects 1110. Auser may place the center point 1108 of the selectable graphical divider1106 over the area including moveable objects 1110. As the selectablegraphical divider 1106 rotates about the center point 1108, theselectable graphical divider snaps to a closest angular increment whenthe user lets go of the selectable graphical divider 1106. In someinstances, the angular increments are 45 degrees. When the user decidesthat the selectable graphical divider 1106 is positioned as desired, theuser presses a place button 1112 to save the position of the selectablegraphical divider 1106.

Similarly, in FIGS. 12 and 13, when a user determines from interface1200 that a center point 1108 of a selectable graphical divider 1206 isproperly placed on a map 1202 (another new representation of the map402) in a room 1204 to divide the room 1204, the user presses a placebutton 1210. Upon pressing the place button 1210, an interface 1300 ispresented, as shown in FIG. 13. The interface 1300 overlays a graphic1304 over a map 1302 (the same as map 1202). The graphic 1304 indicatesto the user that the position of the selectable graphical divider 1206is being saved.

In FIG. 14, an interface 1400 presents a map 1402 (another newrepresentation of the map 402) including rooms 1414, 1416, 1418, 1420,1422 separated by selectable graphical dividers 1404, 1406, 1408, 1410,1412. The interface 1400 also includes an add divider button 1424 toallow a user to create and add another selectable graphical divider tothe map 1402. When the user has divided the map 1402 into rooms asdesired, the user presses a next button 1426 to save the locations ofthe selectable graphical dividers 1404, 1406, 1408, 1410, 1412 on themap 1402.

When the room layout has been completed (i.e., all selectable graphicaldividers have been placed and saved), individual rooms can be labelled.An interface 1500, shown in FIG. 15, includes an instruction message1506 to the user to label a map 1502 (another new representation of themap 402). The instruction message 1506 includes a numerical indicator1508 that shows a number of rooms on the map 1502 that are labelledcompared to a total number of rooms on the map 1502. Here, the numericalindicator 1508 indicates that zero of the five rooms on the map 1502 arelabelled. In some instances, the numerical indicator may include apercentage indicator, a single number showing a number of roomslabelled, etc. When all rooms are labelled, a user may select a donebutton 1504. When not all rooms are labelled, as in FIG. 15, the donebutton 1504 may be unselectable (e.g., greyed out).

Referring to FIG. 16, on an interface 1600, when the user selects a room1604, the room 1604 changes color and a text placeholder 1614 ispositioned on the room 1604. On the interface 1600, the user selects aroom name from a list 1606. The list 1606 includes labels, e.g., label1608. After selecting a label from the list 1606, an interface 1700 ispresented, as shown in FIG. 17, that shows a list 1704 of room typelabels, e.g., room type label 1706. An instruction 1702 asks the user toselect a room type label corresponding to a type of room that waslabelled on interface 1600. The user may select a room type label 1706to associate the room 1604 with a room type. Specific cleaning functionsmay be performed based on a type of room selected on interface 1700. Forexample, wet cleaning (e.g., mopping, etc.) may be performed in roomsidentified as “Bathroom” or “Kitchen” type rooms where a hard floorsurface likely exists. In another example, extra vacuum power may beused for cleaning in high traffic areas, e.g., “Hallway” or “LivingRoom” type rooms. Cleaning parameters (e.g., vacuum power, edgecleaning, spot cleaning, etc.) may be set within the mobile application124 based on type of room. The set cleaning parameters may be applied toall rooms that are selected as being the same room type.

Referring to FIG. 18, after the user selects a label for the room 1604from the list 1606 and room type, a room name label 1806 is applied tothe room 1804 (a new representation of room 1604) on the map 1802 (a newrepresentation of the map 402) in interface 1800. A numerical indicator1808 (a new representation of numerical indicator 1508) presents anumber of labelled rooms reflecting the room name label 1806 beingincluded on the map 1802. As not all rooms on the map 1802 have beenlabelled, done button 1810 is unselectable (e.g., greyed out).

Referring to FIG. 19, on an interface 1900, the user selects a room 1904on a map 1902 (another new representation of the map 402) to belabelled. When selected, the room 1904 changes color and a textplaceholder 1906 is positioned on the room 1904. Instead of selectingfrom a list 1908 of room labels (e.g., label 1910), the user may selecta custom label option 1912. Selecting the custom label option 1912 opensan interface 2000, shown in FIG. 20, on the display 122 of the mobiledevice 120. The interface 2000 includes a text box 2002 allowing theuser to input a room name using keyboard 2006. The interface 2000 alsoincludes a recommendation 2004 to use a unique, recognizable name asroom names may not be repeated.

Referring to FIG. 21, the user has entered text 2108 into a text box2102 using keyboard 2104 on interface 2100. As the text 2108 includes aunique name compared to other labels on the map 1902, a done button 2106is selectable on the keyboard 2104 and allows the user to save the text2108 as a room label for room 1904. Interface 2200 shown in FIG. 22,includes a label 2210 (corresponding to text 2108) on room 2208(corresponding to room 1904). Any previously labelled rooms (e.g., room2204 including label 2206) are shown on a map 2202. Additionally, anumerical indicator 2212 (a new representation of numerical indicator1508) indicates that two out of five rooms on the map 2202 have beenlabeled.

Referring to FIG. 23, the user may access an interface 2300 by swipingup from the bottom of the display 122 on the mobile device 120,performing another triggering gesture on the display 122 of the mobiledevice 120, etc. The interface 2300 includes a menu 2302 that includes alist of map options for using with map 2314 (shown in the background ofthe interface 2300). The options include options to rename 2304 the map,edit 2306 the map, rename 2308 rooms on the map, delete 2310 the map orcancel 2312. Selecting the option to rename the map 2304 may bring upthe interface 500 shown in FIG. 5 that allows the user to name the map502. Selecting the option to edit 2306 the map may present the interface800 allowing the user to change boundaries of the rooms 804, 806, 808,810 on the map 802. The option to rename rooms 2308 on the map may bringup interfaces 1500, 1800, or 2200 that allow the user to select rooms tobe labelled. The delete option will delete the map 2314 and the canceloption 2310 will close the menu 2302 and bring the user back to aninterface showing the labelled rooms on the map 2314.

Referring to FIG. 24, interface 2400 shows a complete custom map 2402that a user may save and use for instructing the autonomous cleaningrobot 102 to perform cleaning operations. Numerical indicator 2424indicates that all five rooms 2404, 2406, 2408, 2410, 2412 on the map2402 are labelled with labels 2414, 2416, 2418, 2420, 2422,respectively. Done button 2426 is selectable (e.g., no longer greyed outas shown in FIGS. 18 and 22) and allows the user to save the custom map2402. After the user selects the done button 2426, an interface 2500, asshown in FIG. 25 is presented.

Referring to FIG. 25, a graphic 2504 and a message 2502 indicate to theuser that the user has completed customization of a map representinghis/her space. The interface 2500 also presents options to clean a room2506 and schedule room cleaning 2508. The option to clean a room 2506may present, when selected, an interface that allows the user to selectindividual rooms from a list (where the rooms are listed with the textof the labels applied to the rooms on the map during customization). Theoption to schedule room cleaning 2508 may, when selected, present aninterface that allows the user to schedule the autonomous cleaning robotto clean one or more of the labelled rooms at a desired time. Forexample, the user may select rooms from a list (where the rooms arelisted with the text of the labels applied to the rooms on the mapduring customization) to clean during a cleaning mission that will beperformed at a time when the user is not at home.

Referring to FIG. 26, flow chart 2600 illustrates a process forcontrolling an autonomous cleaning robot 102. The process includespresenting (2602), on the display 122 of the mobile device 120, agraphical representation of a map including multiple selectable rooms.The process also includes presenting (2604), on the display 122 of themobile device 120, at least one selectable graphical dividerrepresenting boundaries of the selectable rooms. The process alsoincludes receiving (2606) input representing selection of an individualselectable graphical divider. The input may be received at one or moreinputs (e.g., a touch screen display, a button, etc.) of the mobiledevice 120. The process also includes receiving (2608) inputrepresenting one or more adjustments to the individual selectablegraphical divider. Adjustments may include moving, rotating, etc., theindividual selectable graphical divider. The process also includespresenting (2610), on the display 122 of the mobile device 120, agraphical representation of a map where the individual selectablegraphical divider is adjusted.

The robots and techniques described herein, or portions thereof, can becontrolled by a computer program product that includes instructions thatare stored on one or more non-transitory machine-readable storage media,and that are executable on one or more processing devices to control(e.g., to coordinate) the operations described herein. The robotsdescribed herein, or portions thereof, can be implemented as all or partof an apparatus or electronic system that can include one or moreprocessing devices and memory to store executable instructions toimplement various operations.

Operations associated with implementing all or part of the robotoperation and control described herein can be performed by one or moreprogrammable processors executing one or more computer programs toperform the functions described herein. For example, the mobile device,a cloud computing system configured to communicate with the mobiledevice and the autonomous cleaning robot, and the robot's controller mayall include processors programmed with computer programs for executingfunctions such as transmitting signals, computing estimates, orinterpreting signals. A computer program can be written in any form ofprogramming language, including compiled or interpreted languages, andit can be deployed in any form, including as a stand-alone program or asa module, component, subroutine, or other unit suitable for use in acomputing environment.

The controllers and mobile devices described herein can include one ormore processors. Processors suitable for the execution of a computerprogram include, by way of example, both general and special purposemicroprocessors, and any one or more processors of any kind of digitalcomputer. Generally, a processor will receive instructions and data froma read-only storage area or a random access storage area or both.Elements of a computer include one or more processors for executinginstructions and one or more storage area devices for storinginstructions and data. Generally, a computer will also include, or beoperatively coupled to receive data from, or transfer data to, or both,one or more machine-readable storage media, such as mass PCBs forstoring data, e.g., magnetic, magneto-optical disks, or optical disks.Machine-readable storage media suitable for embodying computer programinstructions and data include all forms of non-volatile storage area,including by way of example, semiconductor storage area devices, e.g.,EPROM, EEPROM, and flash storage area devices; magnetic disks, e.g.,internal hard disks or removable disks; magneto-optical disks; andCD-ROM and DVD-ROM disks.

The robot control and operating techniques described herein may beapplicable to controlling other mobile robots aside from cleaningrobots. For example, a lawn mowing robot or a space-monitoring robot maybe trained to perform operations in specific portions of a lawn or spaceas described herein.

Elements of different implementations described herein may be combinedto form other implementations not specifically set forth above. Elementsmay be left out of the structures described herein without adverselyaffecting their operation. Furthermore, various separate elements may becombined into one or more individual elements to perform the functionsdescribed herein.

What is claimed is:
 1. An autonomous mobile robot, comprising: a drivesystem configured to move the autonomous mobile robot about anenvironment; and a controller circuit configured to: receive, from amobile device operable by a user, data representing operations to beperformed in one or more areas in the environment, the one or more areashaving boundaries graphically represented on the mobile device by atleast one selectable graphical divider on a map of the environment; andcontrol the autonomous mobile robot to perform the operations in the oneor more areas in the environment.
 2. The autonomous mobile robot ofclaim 1, wherein the controller circuit is configured to: receive a useradjustment to the at least one selectable graphical divider to updatethe boundaries of the one or more areas; and control the autonomousmobile robot to clean the one or more areas in accordance with theupdated boundaries.
 3. The autonomous mobile robot of claim 2, whereinthe user adjustment includes moving, rotating, positioning, or deletingthe at least one selectable graphical divider.
 4. The autonomous mobilerobot of claim 1, wherein: the one or more areas include one or moreselectable rooms having boundaries graphically represented by the atleast one selectable graphical divider on the map of the environment;and the controller circuit is configured to receive a user selectionfrom the one or more selectable rooms, and to control the autonomousmobile robot to clean the one or more selectable rooms in accordancewith the user selection.
 5. The autonomous mobile robot of claim 4,wherein the controller circuit is configured to receive a cleaningschedule for cleaning the one or more selectable rooms at respectivedesired times, and to control the autonomous mobile robot to clean theone or more selectable rooms in accordance with the cleaning schedule.6. The autonomous mobile robot of claim 1, wherein the at least oneselectable graphical divider includes a graphical representation of acenter point thereof that is operable to be positioned in an open areaor an area containing a moveable object in the environment.
 7. Theautonomous mobile robot of claim 1, wherein the controller circuit isconfigured to receive an indication of improper positioning of the atleast one selectable graphical divider on the map based on a location ofa center point of the at least one selectable graphical divider.
 8. Theautonomous mobile robot of claim 7, wherein the indication of improperpositioning includes the center point of the at least one selectablegraphical divider being positioned outside of an open area on the map.9. The autonomous mobile robot of claim 7, wherein the indication ofimproper positioning includes the center point of the at least oneselectable graphical divider being positioned on a graphicalrepresentation of an immoveable object on the map.
 10. The autonomousmobile robot of claim 1, wherein the at least one selectable graphicaldivider includes a first portion within an open area on the map, and asecond portion extending beyond the open area or intersecting with agraphical representation of an immoveable object in the open area, thefirst portion being presented in a different color or render than thesecond portion.
 11. A mobile robot system, comprising: an autonomousmobile robot; and a mobile device configured to communicate with theautonomous mobile robot, the mobile device comprising: a user interfaceincluding a user input device and a display; and a processor configuredto: present on the display a map of an environment and at least oneselectable graphical divider; based on a user input for selecting andadjusting the at least one selectable graphical divider via the userinput device, update boundaries of one or more areas in the environment;and present on the display a graphical representation of the one or moreareas with the boundaries represented by the at least one selectablegraphical divider; wherein the autonomous mobile robot is configured toperform operations in the one or more areas in accordance with theupdated boundaries.
 12. The mobile robot system of claim 11, wherein theuser input for adjusting the at least one selectable graphical dividerincludes at least one of moving, rotating, positioning, or deleting theat least one selectable graphical divider.
 13. The mobile robot systemof claim 11, wherein: the one or more areas include one or moreselectable rooms having boundaries graphically represented by the atleast one selectable graphical divider on the map of the environment;the processor of the mobile device is configured to receive a userselection from the one or more selectable rooms; and the autonomousmobile robot is configured to clean the one or more selectable rooms inaccordance with the user selection.
 14. The mobile robot system of claim13, wherein the processor of the mobile device is further configured toreceive a use input for naming the one or more selectable rooms.
 15. Themobile robot system of claim 11, wherein the processor of the mobiledevice is configured to: present on the display a graphicalrepresentation of a center point of the at least one selectablegraphical divider; and receive the user input for positioning the centerpoint of the at least one selectable graphical divider in an open areaor an area containing a moveable object in the environment.
 16. Themobile robot system of claim 11, wherein the at least one selectablegraphical divider is configured to snap to an angular increment based ona rotation of the at least one selectable graphical divider about acenter point thereof.
 17. The mobile robot system of claim 11, whereinthe processor of the mobile device is configured to present an alertindicating an improper positioning of the at least one selectablegraphical divider on the map based on a location of a center point ofthe at least one selectable graphical divider.
 18. The mobile robotsystem of claim 17, wherein the alert is presented in response to a userinput for positioning the center point of the at least one selectablegraphical divider outside of an open area on the map.
 19. The mobilerobot system of claim 17, wherein the alert is presented in response toa user input for positioning the center point of the at least oneselectable graphical divider on a representation of an immoveable objecton the map.
 20. The mobile robot system of claim 11, wherein: the atleast one selectable graphical divider includes a first portion withinan open area in the environment, and a second portion extending beyondthe open area or intersecting with a graphical representation of animmoveable object in the open area; and the processor of the mobiledevice is configured to present the first portion on the display in adifferent color or render than the second portion.